typedef union
{
	NBlock* block;
	NExpression* expr;
	NStatement* stmt;
	NIdentifier* ident;
	NVariableDeclaration* var_decl;
	NArrayIndex* index;
	std::vector<shared_ptr<NVariableDeclaration>>* varvec;
	std::vector<shared_ptr<NExpression>>* exprvec;
	std::string* string;
	int token;
} YYSTYPE;
#define	TIDENTIFIER	257
#define	TINTEGER	258
#define	TDOUBLE	259
#define	TYINT	260
#define	TYDOUBLE	261
#define	TYFLOAT	262
#define	TYCHAR	263
#define	TYBOOL	264
#define	TYVOID	265
#define	TYSTRING	266
#define	TEXTERN	267
#define	TLITERAL	268
#define	TCEQ	269
#define	TCNE	270
#define	TCLT	271
#define	TCLE	272
#define	TCGT	273
#define	TCGE	274
#define	TEQUAL	275
#define	TLPAREN	276
#define	TRPAREN	277
#define	TLBRACE	278
#define	TRBRACE	279
#define	TCOMMA	280
#define	TDOT	281
#define	TSEMICOLON	282
#define	TLBRACKET	283
#define	TRBRACKET	284
#define	TQUOTATION	285
#define	TPLUS	286
#define	TMINUS	287
#define	TMUL	288
#define	TDIV	289
#define	TAND	290
#define	TOR	291
#define	TXOR	292
#define	TMOD	293
#define	TNEG	294
#define	TNOT	295
#define	TSHIFTL	296
#define	TSHIFTR	297
#define	TIF	298
#define	TELSE	299
#define	TFOR	300
#define	TWHILE	301
#define	TRETURN	302
#define	TSTRUCT	303


extern YYSTYPE yylval;
